Processing笔记06 您所在的位置:网站首页 arduino 亮灯 Processing笔记06

Processing笔记06

2023-08-18 08:18| 来源: 网络整理| 查看: 265

通过前面几篇学习笔记,我们已经对Processing有了一定的了解,可以绘制一些简单图形,以及响应鼠标键盘的输入。

笔者最初学习Processing的目的就是为了了解如何与Arduino进行交互,即通过Processing来控制Arduino,以及将Arduino的数据进行更加直观的可视化展示,一般这些是通过串口通讯来实现的。本篇我们来学习如何通过Processing下发命令,控制Arduino板载LED灯亮灭。

1. Arduino部分

这里使用Arduino Uno R3开发板,你也可以使用Arduino其他的开发板,一般都有板载LED灯。程序如下所示:

int ledPin = 13; char val; void setup() { pinMode(ledPin, OUTPUT); Serial.begin(9600); } void loop() { if (Serial.available() > 0) //串口接收到数据 { val = Serial.read(); //获取串口接收到的数据 if (val == 'H') { digitalWrite(ledPin, HIGH); } else if (val == 'L') { digitalWrite(ledPin, LOW); } } }

程序部分非常简单,初始化串口,然后在loop()循环中不断的监听串口,当串口收到数据后,读取并根据自己定义的识别命令来判断开关LED灯。

选择对应开发板型号和端口号进行程序下载,这个端口号非常重要,后面的Processing中要设定相同的端口号才能通讯正常,这里的是COM18。

2. Processing部分

在Processing端,我们画了一个矩形,然后通过鼠标位置与矩形坐标及长宽的关系来判断当前鼠标是否位于矩形之上,然后对应通过串口发送不同的命令。程序如下所示:

import processing.serial.*; Serial port; void setup() { size(220, 160); background(244); noStroke(); textSize(20); //printArray(Serial.list());//打印串口列表 //String portName = Serial.list()[0];//修改数组下标得到串口列表中连接Arduino的 String portName = "COM18"; port = new Serial(this, portName, 9600); fill(0, 0, 255); rect(60, 50, 100, 60); text("Key", 90, 140); } void draw() { if (mouseOverRect()) { port.write('H'); } else { port.write('L'); } } //鼠标是否位于矩形之上 boolean mouseOverRect() { return ((mouseX>=60)&&(mouseX=50)&&(mouseY


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有